package day06;

import java.util.Arrays;

public class SelectSort {
    public static void main(String[] args) {
        int[] arr = { 120, 15, 36, 47, 98, 19 };
        System.out.println("原数组"+Arrays.toString(arr));
        //43, 15, 36, 47,  19 ,98
        //43, 15, 36, 19,  47 ,98
        //19, 15, 36, 43,  47 ,98
        //19, 15, 36, 43,  47 ,98
        //15, 19, 36, 43,  47 ,98
        // 找到最大值 max，交换，最大数的位置 maxIndex，最后面的数组位置 length-i-1
        // 找最大数
      /* int max = arr[0];
       //int index=0;
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
              //  index = i;
            }
        }
        System.out.println("max: " + max);
       // System.out.println("index："+index);*/
        // 换个思路 找到最大数的位置
      /*  int maxIndex = 0;
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] >arr[maxIndex]) {
                //max = arr[i];
                maxIndex = i;
            }
        }
        System.out.println("maxIndex最大值的位置: " + maxIndex);
        // 交换位置，最大数放到数组的最后面，也就是和数组最后面的值交换位置
        int tmp = arr[maxIndex];
        arr[maxIndex] = arr[arr.length - 1];
        arr[arr.length - 1] = tmp;
        System.out.println("交换后的数组"+Arrays.toString(arr));


        // 再继续找到最大数的位置
         maxIndex = 0;
        for (int i = 1; i < arr.length-1; i++) {
            if (arr[i] >arr[maxIndex]) {
                //max = arr[i];
                maxIndex = i;
            }
        }
        System.out.println("maxIndex最大值的位置: " + maxIndex);
        // 交换位置，最大数放到数组的最后面，也就是和数组最后面的值交换位置
         tmp = arr[maxIndex];
        arr[maxIndex] = arr[arr.length - 1-1];
        arr[arr.length - 1-1] = tmp;
        System.out.println("交换后的数组"+Arrays.toString(arr));


        // 再继续找到最大数的位置
        maxIndex = 0;
        for (int i = 1; i < arr.length-1-1; i++) {
            if (arr[i] >arr[maxIndex]) {
                //max = arr[i];
                maxIndex = i;
            }
        }
        System.out.println("maxIndex最大值的位置: " + maxIndex);
        // 交换位置，最大数放到数组的最后面，也就是和数组最后面的值交换位置
        tmp = arr[maxIndex];
        arr[maxIndex] = arr[arr.length - 1-1-1];
        arr[arr.length - 1-1-1] = tmp;
        System.out.println("交换后的数组"+Arrays.toString(arr));
        */

        for (int i = 0; i < arr.length; i++) {
            int maxIndex = 0;
            for (int j = 1; j < arr.length-i; j++) {
                if (arr[j] > arr[maxIndex]) {
                    maxIndex = j;
                }
            }
            int tmp2 = arr[maxIndex];
            arr[maxIndex] = arr[arr.length-1-i];
            arr[arr.length-1-i] = tmp2;
            System.out.println("交换后的数组"+Arrays.toString(arr));
        }
        System.out.println("直排结果"+Arrays.toString(arr));
    }
}
